Spark Streaming + Kafka踩坑指南

1 resources文件路径是从项目根目录开始的

2 Scala Map中的->操作符用于映射键名和键值

3 NoClassDefFoundError: org/apache/spark/SparkConf

包定义时需要指定对应的包编译时可用

4 NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream

由于Spark Streaming在反序列化时默认使用lz4解压缩算法,但与kafka存在版本冲突。需要选择其他解压缩算法以避免。

1
val sparkConf = new SparkConf().set("spark.io.compression.codec", "snappy")

参考资料

Java项目读取resources资源文件路径那点事

Scala implicit

Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/spark/SparkConf

(spark消费kafka有jar包冲突)java.lang.NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream.